package net.xxcxcxcx.xc_enhancedmob.render.boss_bar.unit.type.reality;

import net.minecraft.nbt.NbtCompound;
import net.xxcxcxcx.xc_enhancedmob.render.TextureElement;

import java.util.concurrent.CopyOnWriteArrayList;

/**
 * 血条的基础接口
 */
public interface BossBarRealityType {
    //对于自定义数据的存储
    default void writeCustomDataToNbt(NbtCompound nbt) {
    }

    //对于自定义数据的读取
    default void readCustomDataFromNbt(NbtCompound nbt) {
    }

    int getId();

    CopyOnWriteArrayList<TextureElement> getLayers();

    void setLayers(CopyOnWriteArrayList<TextureElement> layers);

    TextureElement getBackground();

    void setBackground(TextureElement background);

    int getMeterOffsetX0();

    void setMeterOffsetX0(int meterOffsetX0);

    int getMeterOffsetX1();

    void setMeterOffsetX1(int meterOffsetX1);

    int getMeterOffsetY0();

    void setMeterOffsetY0(int meterOffsetY0);

    int getMeterOffsetY1();

    void setMeterOffsetY1(int meterOffsetY1);

    TextureElement getIcon();

    void setIcon(TextureElement icon);

    TextureElement getLayer(int num);

    void setHasIcon(boolean hasIcon);

    boolean hasIcon();
}
